const express=require('express');
const routes=express.Router();
const util=require('util');
const mysql=require('mysql');
var pool=mysql.createPool({
//    最大链接数
    connectionLimit:10,
//    主机
    host:'localhost',
//    数据库登陆用户名
    user:'root',
//    登录密码
    password:'123456',
//    当前项目链接的数据库
    database:'stutest'
})

routes.get('/',(req,resp)=>{
        //    1.获取cookie中的uid和posts
    const uid=req.cookies.uid;
    if(req.cookies.posts==1){
        var posts='教师';
    }
        resp.render('add_scores',{uid:uid,post:posts})
    })

//ajax异步请求的路由函数：selclass
//访问地址：add_score/selclass
routes.post('/selclass',(req,resp)=>{
//    1.提取ajax提交的数据
    var numid=req.body.numid;
//    2.获取当前登录者的专业id
    var sub_id=req.cookies.sub_id;
//    3.SQL语句
    var sql=`select id,class_name from sub_class where sub_id=${sub_id} and num=${numid}`;
//    4.链接数据库,执行sql语句
    pool.getConnection((error,connection)=>{
        if(error) throw  error;
        connection.query(sql,(errs,result)=>{
            connection.release()
            if(result){
            //    将查询结果发回给ajax
                resp.send(result);
            }
        if(errs) throw  errs;
        })
    })
})

//ajax异步请求的路由函数：selstu
routes.post('/selstu',(req,resp)=>{
//    获取指定学期
    var numid=req.body.numid;
//    获取课程id
    var classid=req.body.classid;
//    获取当前专业
    var sub_id=req.cookies.sub_id;
//    拼接sql语句
    var sql_selstu=`select uid,stu_name from stu_msg where sub_id=${sub_id} and uid not in (select scores.uid from scores left join sub_class on scores.class_id=sub_class.id where sub_class.sub_id=${sub_id} and sub_class.num=${numid} and sub_class.id=${classid})`;
    //    4.链接数据库,执行sql语句
    pool.getConnection((error,connection)=>{
        if(error) throw  error;
        connection.query(sql_selstu,(errs,result)=> {
             if(errs) throw  errs;

                connection.release()
                if (result) {
                    //    将查询结果发回给ajax
                    resp.send(result);
                }
                if (errs) throw  errs;
             })
    })
})

 //录入学生成绩
//接收表单提交的数据
routes.post('/add',(req,resp)=>{
    //单人添加+多人添加
    //1.声明一个空字符串
    var str='';
        //2.提交表单提交的数据
   var classid=req.body.classid;
   var uidarr=req.body.uid;
   var scoresarr=req.body.scores

    //7.判断提交过来的uidarr是否是数组
    //首先加载一个util模块，原生js的函数
    if(util.isArray(uidarr)){
        //3.针对uid数组进行循环
        uidarr.forEach((item,index)=>{
            //    拼接values关键词后面的内容
            str+=`(${item},${classid},${scoresarr[index]}),`
        })
        //    4.当多人添加的时候，截取字符串【出去最后一位】
        var aa=str.substring(0,str.length-1)
    }else {
    //    单人添加模式
        var aa=`(${uidarr},${classid},${scoresarr})`
    }

//    5.拼接sql语句
    var sql=`insert into scores (uid,class_id,scores) values ${aa}`;
//   6.执行sql语句
    pool.getConnection((error,connection)=>{
        if(error) throw  error;
        connection.query(sql,(errs,result)=> {
            connection.release()
            if (result) {
                resp.redirect('/sel_scores');
            }
            if (errs) throw  errs;
        })
    })
})

//允许访问路由实例
module.exports=routes;